<?php

if( !defined('AROOT') ) die('NO AROOT!');
if( !defined('DS') ) define( 'DS' , DIRECTORY_SEPARATOR );

// define constant
define( 'IN' , true );

define( 'ROOT' , dirname( __FILE__ ) . DS );
//框架类库Path
define( 'CROOT' , ROOT . 'core' . DS  );

/**
*	应用错误级别配置
* 	应用是否显示错误
*	默认debug关闭
*/
if( !defined('DEBUG') ) define('DEBUG', false);
if( DEBUG )
{
	error_reporting( E_ALL );
	ini_set( 'display_errors' , true );
}
else
{
	error_reporting( E_ERROR );
	ini_set( 'display_errors' , false );
}

//引入框架类库
include_once( CROOT . 'lib' . DS . 'core.function.php' );
//引入项目方法类库
@include_once( AROOT . 'lib' . DS . 'app.function.php' );
/**
*	引入框架配置
* 	定义默认Controller和Action
*	定义默认的i18n
*/
include_once( CROOT . 'config' .  DS . 'core.config.php' );
/**
*	定义应用界别的配置
*	应用级别的配置的都在这里面
*/
include_once( AROOT . 'config' . DS . 'app.config.php' );

/**
*	@Router
*	处理请求逻辑
*	分析请求的c和a
*/

$c = $GLOBALS['c'] = v('c') ? v('c') : c('default_controller');
$a = $GLOBALS['a'] = v('a') ? v('a') : c('default_action');

$c = basename(strtolower( z($c) ));
$a =  basename(strtolower( z($a) ));

$post_fix = '.class.php';

$cont_file = AROOT . 'controller'  . DS . $c . $post_fix;
$class_name = $c .'Controller' ; 
if( !file_exists( $cont_file ) )
{
	$cont_file = CROOT . 'controller' . DS . $c . $post_fix;
	if( !file_exists( $cont_file ) ) die('Can\'t find controller file - ' . $c . $post_fix );
} 


require_once( $cont_file );
if( !class_exists( $class_name ) ) die('Can\'t find class - '   .  $class_name );


$o = new $class_name;
if( !method_exists( $o , $a ) ) die('Can\'t find method - '   . $a . ' ');


if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE && @ini_get("zlib.output_compression")) ob_start("ob_gzhandler");
call_user_func( array( $o , $a ) );


